BanniΦre dΘcorative

Langage des expressions


    Le langage des expressions After Effects est basé sur JavaScript 1.2 et intègre des objets complémentaires. After Effects n'utilise que le noyau standard de JavaScript et pas ses extensions spécifiques aux navigateurs Web. After Effects contient son propre ensemble d'objets (comme Calque, Composition, Métrage et Caméra) qui vous permettent d'accéder à la plupart des paramètres d'un projet. (Pour plus d'informations sur JavaScript, reportez-vous à un ouvrage de référence tel que JavaScript: The Definitive Guide, de David Flanagan.)

    En JavaScript, un ensemble est un type d'objet qui stocke plusieurs nombres. Vous pouvez créer vos propres ensembles en entrant une liste de nombres séparés par des virgules et placés entre parenthèses, comme dans l'exemple ci-dessous :

    [10, 23]

    Vous pouvez affecter des ensembles à une variable, afin de faciliter les références aux valeurs des ensembles dans le reste de l'expression. Pour affecter la variable monEnsemble à l'exemple précédent :

    monEnsemble = [10, 23]

    La dimension d'un ensemble dépend du nombre d'éléments qu'il contient (voir la section Dimensions des ensembles.) Etant donné que monEnsemble comporte deux éléments, sa dimension est de 2. Vous pouvez accéder aux éléments individuels d'un ensemble en utilisant des parenthèses et un numéro, appelé index (voir la section Indexation des vecteurs et des ensembles.) Les éléments d'un ensemble sont numérotés à partir de 0. Les éléments individuels de l'exemple précédent sont les suivants :

    monEnsemble[0] est 10
    monEnsemble[1] est 23

    Vous pouvez utiliser [2] pour accéder au troisième élément d'un ensemble tridimensionnel ; toutefois, si vous utilisez [2] dans un ensemble à deux dimensions, After Effects renverra une erreur.

    Vous pouvez combiner les deux types de syntaxe, c'est-à-dire des valeurs individuelles et des valeurs spécifiques à l'aide de parenthèses et d'un index. Par exemple, pour utiliser la valeur x de l'exemple précédent en tant que valeur x d'une nouvelle expression, vous pouvez taper l'une des deux expressions suivantes, puisqu'elles sont identiques :

    [monEnsemble[0], 5]
    [10, 5]

    Dans le langage des expressions After Effects, de nombreuses propriétés et méthodes utilisent des ensembles en tant qu'arguments ou en renvoient en tant que valeurs. Par exemple, thisLayer.position est un ensemble à deux ou trois dimensions, selon qu'il s'agit d'un calque 2D ou 3D. Pour l'exemple précédent, si vous voulez écrire une expression qui garde la valeur y de l'animation d'un objet mais fixe la valeur x à 9, vous devez taper :

    y = position[1];
    [9, y]

    ou plus succinctement encore :

    [9, position[1]]

    Il s'agit d'une règle importante : voici donc un autre exemple. Si vous voulez combiner la valeur de position x du Calque A avec la valeur de position y du Calque B, écrivez :

    x = thisComp.layer("Calque A").position[0];
    y = thisComp.layer("Calque B").position[1];
    [x, y]

    Comme vous le remarquerez peut-être, de nombreuses méthodes et propriétés d'After Effects utilisent ou renvoient des vecteurs, et non pas des ensembles. En ce qui concerne JavaScript, les vecteurs et les ensembles sont exactement la même chose. D'un point de vue mathématique, After Effects n'utilise un vecteur pour faire référence à un ensemble que si celui-ci représente un point ou une direction dans l'espace. La propriété position d'After Effects, par exemple, renvoie un vecteur.

    Toutefois, même si la fonction audioLevels renvoie un ensemble à deux dimensions (les niveaux des couches droite et gauche), celui-ci n'est pas appelé un vecteur puisqu'il ne représente ni un point ni une direction. Certaines fonctions d'After Effects acceptent les vecteurs en tant qu'arguments, mais cela n'est généralement utile que lorsque les valeurs représentent une direction. cross(vec1, vec2), par exemple, calcule un troisième vecteur à angle droit des vecteurs d'entrée. Cette fonction est utile si vec1 et vec2 sont deux vecteurs représentant des directions dans l'espace ; elle n'est d'aucune utilité s'ils représentent simplement deux ensembles arbitraires de nombres.

    Remarque : en JavaScript, une valeur contenue par un objet est appelée « propriété ». Dans After Effects, cependant, le terme « propriété » se réfère à des attributs de calque définis dans la fenêtre Montage. Par souci de clarté, la documentation d'After Effects qualifie de « méthodes » les propriétés JavaScript comportant des arguments et « attributs » celles qui n'en comportent pas.

Sous-rubriques associées :